{registrationsCounts.total} Réservations

{registrationsCounts.paid} payées · {registrationsCounts.verified} scannées · {registrationsCounts.unpaidLydia} Lydias non payées
{new Intl.NumberFormat('fr-FR', { style: 'currency', currency: 'EUR' }).format( profitsBreakdown.total, )} de ventes
{#if newRegistrationsSinceLoad > 0} {newRegistrationsSinceLoad} nouvelles réservations. { const newData = await $zeus.query({ registrationsOfEvent: [ { groupUid: $page.params.group, eventUid: $page.params.uid }, _registrationsQuery, ], event: [ { groupUid: $page.params.group, uid: $page.params.uid }, { registrationsCounts: { total: true, }, }, ], }); data.registrationsOfEvent = newData.registrationsOfEvent; initialRegistrationsTotalCount = newData.event.registrationsCounts.total; newRegistrationsSinceLoad = 0; }}>Afficher {/if}
{#await csv()} Exporter en .csv {:then csvContents} Exporter en .csv {/await} {#if registrations.pageInfo.hasNextPage} Charger plus {/if}
{/each} {#if loadingSearchResults} {:else} {#each displayedRegistrations as { node: registration, node: { paid, id, beneficiary, authorEmail, ticket, beneficiaryUser, author, authorIsBeneficiary, createdAt, paymentMethod, verifiedAt, verifiedBy, opposed, opposedAt, opposedBy, cancelled, cancelledAt, cancelledBy } } (id)} {@const benef = beneficiaryUser ?? (authorIsBeneficiary ? author : undefined)} {@const code = id.replace(/^r:/, '').toUpperCase()} {#if benef} {:else} {/if} {:else} {/each} {/if}
{#each COLUMNS as [key, label] (key)} { $sort.by = key; $sort.direction = $sort.direction === 'ascending' ? 'descending' : 'ascending'; }} >
{label}
{#if $sort.by === key} {#if $sort.direction === 'ascending'} {:else} {/if} {/if}
{#if isSameDay(createdAt, new Date())} {format(createdAt, 'HH:mm')} {:else} {formatDateTime(createdAt)} {/if} {#if opposed} {:else if cancelledAt} {:else if verifiedAt && paid} {:else if paid} {:else} {/if} {#if ticket.group} {ticket.group.name} {/if} {ticket.name} {#if compact} {benef.fullName} {:else} {/if} {#if benef.contributesTo.length > 0} {#if compact && benef.contributesTo.find(({ name }) => name === 'AEn7')} {:else} {benef.contributesTo.map(({ name }) => name).join(', ')} {/if} {:else} {/if} {benef.major?.shortName ?? ''} {benef.yearTier}A {beneficiary || authorEmail} exté {#if !authorIsBeneficiary} {#if author} {#if compact} {author.fullName} {:else} {/if} {:else} {authorEmail} {/if} {/if} {code} updatePaidStatus(!paid, registration)} > {#if paid} {:else} {/if} {#if !verifiedAt} { await updatePaidStatus(true, registration); const { verifyRegistration } = await $zeus.mutate({ verifyRegistration: [ { eventUid: $page.params.uid, groupUid: $page.params.group, id, }, { '__typename': true, '...on Error': { message: true, }, '...on MutationVerifyRegistrationSuccess': { data: { registration: { paid: true, verifiedAt: true, verifiedBy: { uid: true, pictureFile: true, fullName: true, }, }, }, }, }, ], }); if (verifyRegistration.__typename === 'Error') { toasts.error(`Impossible de vérifier ${id}`, verifyRegistration.message); return; } if (verifyRegistration.__typename === 'MutationVerifyRegistrationSuccess') { registrations.edges[ registrations.edges.findIndex((r) => r.node.id === registration.id) ].node.verifiedAt = verifyRegistration.data.registration?.verifiedAt; registrations.edges[ registrations.edges.findIndex((r) => r.node.id === registration.id) ].node.verifiedBy = verifyRegistration.data.registration?.verifiedBy; } }} > {/if} {#if !opposed} { await oppose(registration); }} > {/if}
{#if searchQuery}Aucun résultat{:else} Aucune réservation pour le moment.{/if}
{#if !searchQuery && registrations.pageInfo.hasNextPage}
Charger plus
{/if}